package mr

import "time"

//定义任务类型
const (
	MapTask    = "Map"
	ReduceTask = "Reduce"
)

//定义任务状态
const (
	TaskUnassigned = "Unassigned"
	TaskInProgress = "InProgress"
	TaskFinished   = "Finished"
)

type CoorTask struct {
	//任务类型
	Type string
	//任务状态
	State string
	//任务id
	TaskId int
	//Map任务需求的文件
	MapFile string
	//Reduce任务需求的文件
	Intermediates []string
	//Reduce的输出文件
	OutputFile string
	//任务截至时间
	Deadline time.Time
}

//定义协作者状态
const (
	MapPhase    = "Map"
	ReducePhase = "Reduce"
	DonePhase   = "Done"
)

type WorkerTask struct {
	//当前任务阶段
	Phase string
	//任务id
	TaskId int
	//Map任务数量
	NMap int
	//Reduce任务数量
	NReduce int
	//Map任务的输入文件
	MapInputFile string
	//Reduce任务所需的中间文件列表
	ReduceIntermediateFiles []string
	//Reduce任务的输出文件
	OutputFile string
	//标识任务状态，可能没有任务分配
	//IsValid bool
}
